/*
 * kpm_plans.h
 *
 *  Created on: Jan 4, 2012
 *      Author: Zhang
 */

#ifndef KPM_PLANS_H_
#define KPM_PLANS_H_

#include "ell.h"

template <class T>
struct DOSPlan{
	//node Id
	int node;

	//device Id
	int device;

	//number of random vectors
	int num_r;

	//number of moments
	int m;

	//hamiltonian matrix
	ELL<T>* H;

	//moments
	T* U;
};

template <class T>
struct LDOSPlan{
	//node Id
	int node;

	//device Id
	int device;

	//number of samples
	unsigned int num_s;

	//number of moments
	int m;

	//hamiltonian matrix
	ELL<T>* H;

	//energy
	T* E;

	//number of energy to evaluate.
	unsigned int num_e;

	//LDOS value, num_s * num_e
	T* LDOS;
};


#endif /* KPM_PLANS_H_ */
